<?php
include('class/class_connect.php');
include('class/class_page.php');
include('class/city_rus.php');
include('class/class_form.php');
include('class/class_workdays.php');
include('class/class_checkGetData.php');
include('includes/rubriks.php');
include('class/class_citystreet.php');
$cityRus=new city_rus_class();
foreach($_GET as $key=>$val)
{
	$_GET[$key]=checkGetData::safetyCheck($val);
}
$aCheckData=new checkGetData('f');
$aCheckData->checkCity($_GET['city']);
$aCheckData->checkTableId($_GET['city'], $_GET['id']);
session_start();
if(!$_SESSION['login'])
{
	header('location: registr.php?city='.$_GET['city']);
	exit;
}
$aConnect=new connect('f');
$row=mysql_fetch_array($aConnect->select_all($_GET['city'], "WHERE id='".$_GET['id']."'"));
if(strtolower($row['user'])!=strtolower($_SESSION['login']))
{
	echo ('
	<center>
		<h1>У Вас нет доступа к запрашиваемой странице!</h1>
		<a href="index.php">На главную</a>
		</center>
	');
}
$aForm=new form();
$warning=false;
if($_POST['undoFirms'])unset($_POST);
if($_POST['editFirms'])
{
	if($_POST['division'] || $_POST['subdiv'])
	{
		if(!$warning)
		{
			$checkDiv=false;
			$checkSubdiv=false;
			foreach($divises as $division=>$divSubs)
			{
				if($division==$_POST['division'])$checkDiv=true;
				for($i=0; $i<count($divSubs); $i++)
					if($divSubs[$i]==$_POST['subdiv'])$checkSubdiv=true;
			}
		}
		if(!$warning)
			if(!$checkDiv)$warning='Недопустимая рубрика!';
		if(!$warning)
			if(!$checkSubdiv)$warning='Недопустимый раздел рубрики!';
	}
	if(!$warning && isset($_POST['name']))
		$warning=$aForm->checkInput($_POST['name'], 'название', 'name', $row['name'], 80, 1, "", "\" ` ^ ~ < > \r\n", 'o (Только русские и английские буквы и цифры и -!@#*?&$()\'.,)');
	if(!$warning && isset($_POST['short']))
		$warning=$aForm->checkInput($_POST['short'], 'краткое описание', 'short', $row['short'], 80, 2, "", "\" ` ^ ~ < > \r\n", 'o (Только русские и английские буквы и цифры и -@#&()\'.,)');
	if($_POST['link'])
	{
		$_POST['link']=str_replace('http://', '', $_POST['link']);
		$_POST['link']=str_replace('https://', '', $_POST['link']);
		$_POST['link']=str_replace('www.', '', $_POST['link']);
	}
	if(!$warning && isset($_POST['link']) && $_POST['link']!='')
		$warning=$aForm->checkInput($_POST['link'], 'веб-сайт', 'link', $row['link'], 60, 5, "", ", \" ` ^ ~ < > \r\n ! № % : ?   =  $ &  [ ] / + \\ { } [ ] ;  \'", ' (Только буквы,цифры и -_.)');
	if($row['address'])$oldAddress=explode('|', $row['address']);
	if($_POST['countAddress'])//количество измененных или добавленных адресов
	{
		for($j=0; $j<count($_POST['countAddress']); $j++)
		{
			$i=$_POST['countAddress'][$j];
			$number=$i;
				if(!$warning)
					$warning=$aForm->checkInput($_POST['street'.$number], 'поле "улица" в форме адреса №'.$number, 'street'.$number, '', 80, 3, "", ", \"` ^ ~ < > \r\n ! № % : ? * ( ) + = # $ & q w e r t y u i p [ ] a s d f g h j k l ; z x c v b n m ", 'о (Только русские буквы и цифры тире и точка)');
				if($_POST['building'])$_POST['building']=str_replace(' ', '', $_POST['building']);
				if(!$warning)
					$warning=$aForm->checkInput($_POST['building'.$number], 'дом в форме адреса №'.$number, 'building'.$number, '', 12, 1, "", ", \" ` ^ ~ < > \r\n ! № % : ? * ( ) + = # $ & q w e r t y u i p [ ] a s d f g h j k l ; z x c v b n m ", ' (Только русские буквы и цифры тире и точка)');
				if(!$warning)
                {
                	$params = array(
					    'geocode' => $cityRus->city_rus_im($_GET['city']).' ,'.$_POST['street'.$number].', '.$_POST['building'.$number], // адрес
					    'format'  => 'json',                          // формат ответа
					    'results' => 1,                               // количество выводимых результатов
					    'key'     => 'AC40TVMBAAAAAgqCFwIAz-vPiDwhb8fUBTHoPFOAJd6CVTEAAAAAAAAAAADJ_GnUXHDcFDpPbWU9frL9eMsrdg==',                           // ваш api key
					);
					$response = json_decode(@file_get_contents('http://geocode-maps.yandex.ru/1.x/?' . http_build_query($params, '', '&')));

					if ($response->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->found > 0)
					{
					    $position=$response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;
					}
					echo $position;
                }
                echo $position;
				if(!$warning && $_POST['phone'.$number]!='')
					$warning=$aForm->checkInput($_POST['phone'.$number], 'телефон в форме адреса №'.$number, 'phone'.$number, '', 40, 7, "", ", \" ` ^ ~ < > \r\n ! № % : ?   =  $ &  [ ] ", ' (Только буквы,цифры и +()-)');

				if(!$warning)
					$address[$i]=$_POST['street'.$i].'^'.$_POST['building'.$i].'^'.$_POST['phone'.$i].'^'.$_POST['mallSuggest'.$i].'^'.workdays::getWorkdays($i).'^'.$position;
				if(!$warning)
				{
					if($_POST['mallSuggest'.$i])
					{
						$a=explode(',', $_POST['mallSuggest'.$i]);
						$mallsFirm[]=$a[0];
					}
					$citystreets[][$_POST['street'.$number]]=$_POST['building'.$number];
					if($_POST['mallHidden'.$number])
					{
						if($_POST['mallHidden'.$number]!=$_POST['mallSuggest'.$number])
						{
							$a=explode(',', $_POST['mallHidden'.$i]);
							$mallsToDelete[]=$a[0];
						}
					}

				}

		}
	}
	if($_POST['deleteAddress'])//количество удаленных адресов
	{
		for($j=0; $j<count($_POST['deleteAddress']); $j++)
		{
			$i=$_POST['deleteAddress'][$j]-1;
			if($oldAddress[$i])
			{
				$a=explode('^', $oldAddress[$i]);
				if($a[3]!='')
				{
					$b=explode(',', $a[3]);
					$mallsToDelete[]=$b[0];
				}
				unset($oldAddress[$i]);
			}
		}
	}
	$oldAddress=array_values($oldAddress);
	if($address)
	{
		foreach($address as $number=>$addr)
		{
			$oldAddress[$number-1]=$addr;
		}
	}
	if($oldAddress)
	{		$position=array();
		foreach($oldAddress as $key=>$addr)
		{
			$addrEls=explode('^', $addr);
			$params = array(
			    'geocode' => $cityRus->city_rus_im($_GET['city']).' ,'.$addrEls[0].', '.$addrEls[1], // адрес
			    'format'  => 'json',                          // формат ответа
			    'results' => 1,                               // количество выводимых результатов
			    'key'     => 'AC40TVMBAAAAAgqCFwIAz-vPiDwhb8fUBTHoPFOAJd6CVTEAAAAAAAAAAADJ_GnUXHDcFDpPbWU9frL9eMsrdg==',                           // ваш api key
			);
			$response = json_decode(@file_get_contents('http://geocode-maps.yandex.ru/1.x/?' . http_build_query($params, '', '&')));

			if ($response->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->found > 0)
			{
			    $position[]=$response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;
			}
		}
		$oldAddress=implode('|', $oldAddress);
		if($position)$positions=implode(',', $position);	}
	if($oldAddress!=$row['address'])
	{
		$data['address']=$oldAddress;
	}
	if($mallsFirm || $mallsToDelete)//вносим изменения в поле фирмы malls
	{
		if($row['m'])
		{
			$malls=explode(',', $row['malls']);
			for($i=0; $i<count($mallsFirm); $i++)
			{
				if(!in_array($mallsFirm[$i], $malls))
					$malls[]=$mallsFirm[$i];
			}
			for($i=0; $i<count($mallsToDelete); $i++)
			{
				if(in_array($mallsToDelete[$i], $malls))
			 		unset($malls[array_search($mallsToDelete[$i], $malls)]);
			}
		}
		else
		{
			if($mallsFirm)$malls[]=implode(',', $mallsFirm);
		}
		if($malls)$malls=implode(',', $malls);
		else $data['malls']='';
		if($malls)$data['malls']=$malls;
	}
	if(!$warning && $_POST['textTitle']!='')
		$warning=$aForm->checkInput($_POST['textTitle'], 'заголовок текста', 'textTitle', '', 100, 0, "", " \" \r\n ` ^ ~", ' (все символы кроме "`^~)');
	if(!$warning && $_POST['stext']!='')
		$warning=$aForm->checkInput($_POST['stext'], 'текст', 'stext', '', 6000, 0, "", " \" ` ^ ~", ' (все символы кроме "`^~)');

	if(!$warning)//все поля заполнены правильно
	{
		if($_POST['subdiv'] && $_POST['division'])
		{
			$data['division']=$_POST['division'];
			$data['subdiv']=$_POST['subdiv'];
		}
		if($positions)$data['positions']=$positions;
		if($_POST['name'])$data['name']=$_POST['name'];
		if($_POST['short'])$data['short']=$_POST['short'];
		if($_POST['link'])$data['link']=$_POST['link'];
		if($_POST['text_title'])$data['text_title']=$_POST['text_title'];
		if($_POST['stext'])$data['stext']=$_POST['stext'];
		if($data)//сделаны изменения
		{
			if($data)
			{
				foreach($data as $r=>$v)
				{
					$dataTo[]=$r."='".$v."'";
				}
				if($dataTo)$dataToUpdate=implode(', ', $dataTo);
			}
			if($dataToUpdate)
				$aConnect->update_data($_GET['city'], $dataToUpdate, "WHERE id='".$row['id']."'"); //обновляем данные фирмы
			if($_POST['name'] && $_POST['name']!=$row['name'])//если изменено имя фирмы, меняем имя фирмы в данных пользователя
			{
				$aConnect=new connect('main');
				$aRow=mysql_fetch_array($aConnect->select_all('users', "WHERE login='".$_SESSION['login']."'"));
				if($aRow['firms'])
				{
					$mallsArray=explode(',', $aRow['firms']);
					for($i=0; $i<count($mallsArray); $i++)
					{
						$mallsInfoArray=explode('^', $mallsArray[$i]);
						if($mallsInfoArray[1]==$row['id'])$mallsInfoArray[2]=$_POST['name'];
						$mallsArray[$i]=implode('^', $mallsInfoArray);
					}
					$newMalls=implode(',', $mallsArray);
				}

					$aConnect->update_data('users', "firms='".$newMalls."'", "WHERE login='".$_SESSION['login']."'");
			}
		}
	    ($_POST['name'])?$name=$_POST['name']:$name=$row['name'];
	    ($_POST['subdiv'])?$subdiv=$_POST['subdiv']:$subdiv=$row['subdiv'];
		$aConnect=new connect('m');
		$isFirmInMall=false;

		if($mallsToDelete)//если удаляем адрес в котором была привязка к торговому центру, удаляем фирму из центра
		{
			for($i=0; $i<count($mallsToDelete); $i++)
			{
				$mrow=mysql_fetch_array($aConnect->select_all($_GET['city'], "WHERE id='".$mallsToDelete[$i]."'"));
				if($mrow['firms'])
				{
					$firms=explode('|', $mrow['firms']);
					for($j=0; $j<count($firms); $j++)
					{
						$firmsEls=explode('^', $firms[$j]);
						if($firmsEls[0]==$row['id'])unset($firms[$j]);
					}
				}
				if($firms)
					$mrow['firms']=implode('|', $firms);
				else
					$mrow['firms']='';
				$aConnect->update_data($_GET['city'], "firms='".$mrow['firms']."'", "WHERE id='".$mallsToDelete[$i]."'");
			}
		}
		if($mallsFirm)//если меняем адрес в котором была привязка к торговому центру, удаляем или добавляем фирму к центру
		{
			for($i=0; $i<count($mallsFirm); $i++)
			{
				$mrow=mysql_fetch_array($aConnect->select_all($_GET['city'], "WHERE id='".$mallsFirm[$i]."'"));
				if($mrow['firms'])
				{
					$firms=explode('|', $mrow['firms']);
					for($j=0; $j<count($firms); $j++)
					{
						$firmsEls=explode('^', $firms[$j]);
						if($firmsEls[0]==$row['id'])$isFirmInMall=true;
					}
					if(!$isFirmInMall)$mrow['firms'].='|'.$row['id'].'^'.$name.'^'.$subdiv;
				}
				else $mrow['firms']=$row['id'].'^'.$name.'^'.$subdiv;
				$aConnect->update_data($_GET['city'], "firms='".$mrow['firms']."'", "WHERE id='".$mallsFirm[$i]."'");
			}
		}
		if($_POST['subdiv'] || $_POST['name'])//если меняем имя или рубрику, меняем их в данных торговых центров, если есть привязки
		{
			if($row['malls'])
			{
				$mall=explode(',', $row['malls']);
				for($i=0; $i<count($mall); $i++)
				{
					$mrow=mysql_fetch_array($aConnect->select_all($_GET['city'], "WHERE id='".$mall[$i]."'"));
					if($mrow['firms'])
					{
						$firms=explode('|', $mrow['firms']);
						for($j=0; $j<count($firms); $j++)
						{
							$firmsEls=explode('^', $firms[$j]);
							if($firmsEls[0]==$row['id'])
							{
								if($_POST['name'])$firmsEls[1]=$_POST['name'];
								if($_POST['subdiv'])$firmsEls[2]=$_POST['subdiv'];
							}
							$firms[$j]=implode('^', $firmsEls);
						}
						$mrow['firms']=implode('|', $firms);
					}
					$aConnect->update_data($_GET['city'], "firms='".$mrow['firms']."'", "WHERE id='".$mall[$i]."'");
				}
			}
		}
		if($_POST['imgName'])
		{
			if(file_exists($_POST['imgName'].'.jpg'))
			{
				rename($_POST['imgName'].'.jpg', 'pictures/firmspics/'.$_GET['city'].'/'.$row['id'].'.jpg');
			}
		}
		if($citystreets)
		for($i=0; $i<count($citystreets); $i++)
		{
			foreach($citystreets[$i] as $street=>$building)
				$aCityStreet=new cityStreet($_GET['city'], $street, $building);
		}
		header('location: firmscabinet.php?city='.$_GET['city'].'&id='.$row['id']);
	}
}
$aConnect=new connect('f');
$row=mysql_fetch_array($aConnect->select_all($_GET['city'], "WHERE id='".$_GET['id']."'"));
$aForm=new  form();
class aFirmPage extends page
{
	var $warning;
	var $row=array();
	function __construct($warning, $row=array())
	{
		$this->warning=$warning;
		$this->row=$row;
		parent::__construct();
	}
	function title()
	{
		echo 'Редактировать фирму '.$this->row['name'];
	}
	function maincontent()
	{
		$aForm=new  form();
		$aForm->includeStyle();
		$aForm->includeScript();
		$aWorkdays=new workdays();
		$imgName='temp'.rand();
		$avatar='pictures/nologo.jpg';
		if(file_exists('pictures/firmspics/'.$_GET['city'].'/'.$this->row['id'].'.jpg'))
			 $avatar='pictures/firmspics/'.$_GET['city'].'/'.$this->row['id'].'.jpg';
		if($_POST['imgName'])
		{
			$avatar=$_POST['imgName'].'.jpg';
		}
		echo ('
		<script type="text/javascript" src="scripts/editFirms.js">
		</script>
		<script type="text/javascript" src="jquery/ajaxUpload.js">
  		</script>
  		<script type="text/javascript" src="scripts/chooseSubdivForm.js">
		</script>
		<link rel="stylesheet" type="text/css" href="style/editFirms.css" />
		<link rel="stylesheet" type="text/css" href="style/addressform.css" />
		<div class="route">
			<div class="routeEl">
				<a href="pcabinet.php?city='.$_GET['city'].'">Личный кабинет</a>
			</div>
			<div class="routeEl">
				<a href="my_firms.php?city='.$_GET['city'].'">Мои фирмы</a>
			</div>
			<div class="routeEl">
				<a href="firmscabinet.php?city='.$_GET['city'].'&id='.$_GET['id'].'">'.$this->row['name'].'</a>
			</div>
			<div class="routeEl">
				Редактировать
			</div>
		</div>
		  <div class="form" align="center">
		  <h3>Редактировать '.$this->row['short'].' '.$this->row['name'].'</h3>
		   <form method="post" id="editFirms" name="editProfile" action="" autocomplete="off">
		   		<input name="city" type="hidden" value="'.$_GET['city'].'" id="city">
		   		<center id="warning">&nbsp;'.$this->warning.'</center>
		   		<div class="myform">
			   		<div class="signature">
			   	 		Логотип:
			   	 	</div>
			   		<div id="avatar">
				     	<div id="upload">
				 			<span id="span" class="loadButton" imgName="'.$imgName.'">Изменить</span>
				 		</div>
				 		<div id="preview">
		   	 				<img src="'.$avatar.'" />
		   	 				<input type="hidden" name="imgName" value="'.$_POST['imgName'].'" />
		   	 				<span id="status"></span>
				    	</div>
			   	 	</div>
		   	 	</div>
		   	 	<div class="myform">
			 	<div class="signature">
					Рубрика:
				</div>
				<br />
				');
                @include('includes/rubriks.php');
				$subdiv=$this->row['subdiv'];
					foreach($divises as $divKey=>$divSubdives)
					{
						if(in_array($subdiv, $divSubdives))
						{
							$division=$divKey;
							break;
						}
					}
					echo ('
					<div class="chooseSubdiv">
						<div class="division" id="division"><div class="curDivision">'.$division.'</div><input name="division" id="divisionInput" type="hidden" value="'.$row['division'].'"></div>
						<div class="subdiv" id="firstsubdiv"><div class="curSubdiv">'.$subdiv.'</div><input name="subdiv" id="subdiv" type="hidden" value="'.$row['subdiv'].'"></div>
					</div>
			 </div>
		   	 	<div class="myform">
			   	 	<div class="signature">
			   	 		Название:
			   	 	</div>
			   		<div id="name" class="edit" value="'.$this->row['name'].'">
			   			'.$this->row['name'].'<br /><but class="but">изменить</but>
			   		</div>
				</div>
		   	 	<div class="myform">
			   		<div class="signature">
			   	 		Краткое описание:
			   	 	</div>
			   		<div id="short" class="edit" value="'.$this->row['short'].'">
			   			'.$this->row['short'].'<br /><but class="but">изменить</but>
			   		</div>
				</div>
				<div class="myform">
			   		<div class="signature">
			   	 		Веб-сайт:
			   	 	</div>
			   		<div id="link" class="edit" value="'.$this->row['link'].'">
			   			'.$this->row['link'].'<br /><but class="but">изменить</but>
			   		</div>
				</div>
		   	 	<div class="myform">
			   		<div class="signature">
			   	 		Адреса:
			   	 	</div>
		');
        $addresses=explode('|', $this->row['address']);
        function showAddress($addressString, $number, $deleteButton=true)
        {
        	$addressEls=explode('^', $addressString);
        	$street=$addressEls[0];
        	$building=$addressEls[1];
        	$phone=$addressEls[2];
        	$mall=$addressEls[3];
        	$workdays=$addressEls[4];
        	$mallsEls=explode(',', $mallsEls);
        	$mallsId=$mallsEls[0];
        	$mallsName=$mallsEls[1];
        	$mallsShort=$mallsEls[2];
        	echo ('
        	<div class="anAddress" id="anAddress'.$number.'">
        	<input id="value'.$number.'" type="hidden" value="'.$addressString.'">
        	<table border="0">
				<tr>
					<td width="100">
						Адрес:
					</td>
					<td width="250">
						'.$street.', '.$building.'
					</td>
				</tr>
				<tr>
					<td colspan="2">
						'.$mallsShort.' '.$mallsName.'
					</td>
				</tr>
				<tr>
					<td width="100">
						Телефон:
					</td>
					<td width="250">
						'.$phone.'
					</td>
				</tr>
				<tr>
					<td width="100">
						Часы работы:
					</td>
					<td width="250">
					');
						workdays::showWorkdays($workdays);
					echo ('
					</td>
				</tr>
			</table>
			<but class="editAddress">
				Изменить
			</but>
			');
			if($deleteButton)
			{
				echo ('
			<but class="deleteAddress">
				Удалить
			</but>
				');
			}
			echo ('
			</div>
			');
		}
        if(count($addresses)>1)
        {
        echo ('
        <div class="showAddresses">
        	Указано несколько адресов<br />
	   			<but id="showAddresses">Показать</but><br />
	   			<div class="addAddressForm" id="aaf'.count($addresses).'">Добавить еще адрес</div>
	   	</div>
	   	');

		echo ('
			<div class="addresses">
				<div class="hideAddresses">
	   				<but>Скрыть</but>
	   			</div>
		');
		for($i=1; $i<=count($addresses); $i++)
		{
				showAddress($addresses[$i-1], $i);
		}
		echo ('
				<div class="hideAddresses">
	   				<but>Скрыть</but>
	   			</div>
			</div>
		');
        }
        else
        {
        	echo ('
        	<div class="showAddresses">
        	');
        		showAddress($addresses[0], 1, false);
        	echo ('
        		<div class="addAddressForm" id="aaf1">Добавить еще адрес</div>
        	</div>
        	');
        }
        echo ('
				</div>
		   	 	<div class="myform">
			   		<div class="signature">
			   	 		Заголовок текста:
			   	 	</div>
			   		<div id="text_title" class="edit" value="'.$this->row['text_title'].'">
			   			'.$this->row['text_title'].'<br /><but class="but">изменить</but>
			   		</div>
			   		<br /><br />
			   		<div class="signature">
			   	 		Текст:
			   	 	</div>
			   		<div id="text" class="edit" value="'.$this->row['stext'].'">
			   			'.$this->row['stext'].'<br /><but class="but">изменить</but>
			   		</div>

				</div>
                <input type="submit" value="Сохранить" class="button button-blue" name="editFirms">
                <a href="firmscabinet.php?city='.$_GET['city'].'&id='.$_GET['id'].'" class="button button-blue">Отменить</a>
		   </form>

		  </div>
		');
	}
}

$aPage=new aFirmPage($warning, $row);

?>